package xadrez;

import java.awt.Color;
import java.awt.Graphics;

public class PlanoDeFundo {
	private Sprite preto[];
	private Sprite branco[];
	private int resolucao;
	
	public PlanoDeFundo(int resolucao) {
		this.resolucao = resolucao;
		preto = new Sprite[6];
		branco = new Sprite[6];
		
		preto[0] = new Sprite('b',"preto",resolucao);
		preto[1] = new Sprite('c',"preto",resolucao);
		preto[2] = new Sprite('k',"preto",resolucao);
		preto[3] = new Sprite('p',"preto",resolucao);
		preto[4] = new Sprite('q',"preto",resolucao);
		preto[5] = new Sprite('t',"preto",resolucao);
		
		branco[0] = new Sprite('b',"branco",resolucao);
		branco[1] = new Sprite('c',"branco",resolucao);
		branco[2] = new Sprite('k',"branco",resolucao);
		branco[3] = new Sprite('p',"branco",resolucao);
		branco[4] = new Sprite('q',"branco",resolucao);
		branco[5] = new Sprite('t',"branco",resolucao);
		
	}
	
	private void desenhaPeca(Graphics g, Peca peca) {
		if (peca.GetTipo() != 'x') {
			Sprite sprite = busca(peca);
			sprite.paint(g, peca.getX()*(resolucao/8), peca.getY()*(resolucao/8));
		}
	}
	
	private Sprite busca(Peca peca) {
		for (int i = 0; i < 6; i++) {
			if (peca.GetCor().equals("branco")) {
				if (branco[i].getTipo() == peca.GetTipo()){
					return branco[i];
				}				
			}else {
				if (preto[i].getTipo() == peca.GetTipo()) {
					return preto[i];
				}
			}
		}
		return null;
	}
	
	public void Desenha(Graphics g, Tabuleiro tab) {
		DesenhaTabuleiro(g);
		for (int i = 0; i < 8;i++) {
			for (int j = 0; j < 8; j++) {                                 
				desenhaPeca(g,tab.GetPeca(i, j));
			}
		}
	}
	
	private void DesenhaTabuleiro(Graphics g) {
	        for (int x = 0; x < 8; x++) {
	            for (int y = 0; y < 8; y++) {
	        	if ((x+y)%2 == 0) {
	         		g.setColor(Color.white);
	                	g.fillRect(x*(resolucao/8), y*(resolucao/8), x*(resolucao/8) + (resolucao/8), y*(resolucao/8) + (resolucao/8));
	        	} 
	                else {
	        		g.setColor(Color.gray);
	       			g.fillRect(x*(resolucao/8), y*(resolucao/8), x*(resolucao/8) + (resolucao/8), y*(resolucao/8) + (resolucao/8));
	       		}
	            }
	        } 
	    }

}
